import { Show, newNarratorDialogue, newLinesDialogue, newImgNarratorDialogue } from './engine.js';
import { auv, zhi, sagi, hei, tang, teacher, yi, EW } from './init.js';

function reportSettlement() {
    // 收集玩家属性
    const playerInfo = {
        stamina: auv.getStamina(),
        cash: auv.getCash(),
        charm: auv.attrs.charm,
        tech: auv.attrs.tech,
        art: auv.attrs.art,
        mana: auv.attrs.mana,
        arkLv: auv.getArkLv()
    };
    
    // 收集所有女主属性
    const heroinesInfo = {
        zhi: zhi.getData(),
        sagi: sagi.getData(),
        tang: tang.getData(),
        hei: hei.getData(),
        yi: yi.getData(),
        teacher: teacher.getData(),
        EW: EW.getData(),
    };
    
    // 组合所有属性信息为一个JSON字符串
    const allStats = JSON.stringify({
        player: playerInfo,
        heroines: heroinesInfo
    });
    
    window.aegis.reportEvent({
        name : 'Settlement',
        ext1 : allStats,
    });
}

function getSagiProjectState() {
    reportSettlement();
    if (sagi.projectProgress <= 20) {
        return 'sagi的过山车地图依然无人问津';
    }
    else if(sagi.projectProgress <= 40) {
        sagi.cash += 10;
        return 'sagi的过山车地图竟然有几百下载了！';
    }
    else if(sagi.projectProgress <= 60) {
        sagi.cash += 25;
        return 'sagi的过山车地图竟然有上千下载了！而且有好多人在论坛讨论！';
    }
    else if(sagi.projectProgress <= 80) {
        sagi.cash += 50;
        return 'sagi的过山车地图竟然上热榜了！而且还建了粉丝群';
    }
    else {
        sagi.cash += 100;
        return 'sagi的地图是热榜第一！迷你世界官方好像在邀请sagi去上班呢！';
    }
}

function getZhiProjectState() {
    if (zhi.projectProgress <= 20) {
        return '至的UE场景基础光照都没调通，材质都报错了！再这样找家长！';
    }
    else if(zhi.projectProgress <= 40) {
        return '今天表扬一下至，UE场景能跑起来了，虽然帧率只有15fps...';
    }
    else if(zhi.projectProgress <= 70) {
        return '至的UE优化绝了！百万面场景跑满60帧！材质效果惊艳！';
    }
    else if(zhi.projectProgress <= 95) {
        return '至的UE场景被选作校赛示范案例！实时全局光照方案绝了！';
    }
    else {
        return '至的大世界可交互沙漠demo被Epic官方转发！UE Fest邀请作报告！';
    }
}

function getSleepSettlementShow() {
    const sleepSettlementDialogues = [
        newLinesDialogue('要睡觉了，先去迷你世界论坛看看吧', auv),
        newNarratorDialogue(getSagiProjectState()),
        newLinesDialogue('再去看看技能大赛训练群……', auv),
        newNarratorDialogue('打开了技能大赛QQ群'),
        newLinesDialogue(getZhiProjectState(), teacher),
        newLinesDialogue('酷', auv),
        newNarratorDialogue('AUV躺在床上，望着天花板，回想着这一天发生的点点滴滴'),
        newLinesDialogue('emmm...', auv),
        newNarratorDialogue('--- 本日结算 ---'),
        newNarratorDialogue(`【AUV状态】`),
        newNarratorDialogue(`精力（起床后）: ${auv.getStamina()}`),
        newNarratorDialogue(`情商: ${auv.attrs.charm}`),
        newNarratorDialogue(`财产: ${auv.getCash()}元`),
        newNarratorDialogue(`【职业技能】`),
        newNarratorDialogue(`技术: ${auv.attrs.tech}`),
        newNarratorDialogue(`美术: ${auv.attrs.art}`),
        newNarratorDialogue(`游戏策划: ${auv.attrs.mana}`),
        newNarratorDialogue(`明日方舟等级: ${auv.getArkLv()}`),
        //newNarratorDialogue(`至 - 项目进度: ${zhi.projectProgress}%`),
        //newNarratorDialogue(`sagi - 项目进度: ${sagi.projectProgress}%`),
        //newNarratorDialogue(`黑毛黑框厨 - 项目进度: ${hei.projectProgress}%`),
        //newNarratorDialogue(`躺啊堂 - 项目进度: ${tang.projectProgress}%`),
        newLinesDialogue('明天中午见', auv)
    ];
    return new Show(sleepSettlementDialogues);
}

export { getSleepSettlementShow };